#!/bin/bash

#============================================
# 变量定义
# 1、定义时不带$，使用时带$
# 2、字母数字下划线，不能以数字开头，不能使用shell关键字
# 3、变量名长度不得超过255个字符
# 4、变量默认类型都是string型
# 5、赋值的等号两边不能有空格
# 变量分为环境变量、自定义变量、位置参数（如$1，参数>9个时，数字要加{}）、预定义变量
#============================================

name='ouyang'
echo "Hello ${name}"

MY_NAME='ouyang';_MY_NAME='simon' #多个语句可以写在一行，用;隔开即可
my_name='vsiryxm'
my_name2='yang'
echo $MY_NAME $_MY_NAME $my_name $my_name2 #可以一行输出多个变量，空格隔开即可
echo 'my name is ${MY_NAME}' #这一点PHP跟shell是一样的，单引号不解析变量
echo "my name is ${MY_NAME}xinmin" # {} 是可有可无的，但可以用于划分变量名界线

#变量叠加 以字符串的形式叠加到值里
a=123
a=${a}456
echo $a
a="$a"789
echo $a

# 只读变量
MY_HOME='HuNan Xin hua'
readonly MY_HOME
#MY_HOME='HuNan Changsha' #只读变量 再赋值时就报错
echo MY_HOME

# 销毁变量
unset my_name2 #PHP跟shell是一样的
echo "my name2:${my_name2}" #输出空 

echo $my_name2 #变量不存在，输出为空，但这里分两种情况，一种是赋值为空串了，一种是不存在
set -u #可以帮助排错
echo $my_name2 #如果变量不存在，就直接报错提示不存在了

